package com.young.common.interf;

import com.young.common.model.ResultData;
import com.young.common.model.ResultEnum;

public interface IBaseController {

    int DEFAULT_PAG_ENUM  =  1;
    int DEFAULT_PAGE_SIZE = 10;

    default ResultData<?> success() {
        return ResultData.of(ResultEnum.SUC);
    }

    default ResultData<?> success(Object data) {
        return new ResultData<>(ResultEnum.SUC.getCode(), ResultEnum.SUC.getMessage(), data);
    }

    default ResultData<?> error() {
        return ResultData.of(ResultEnum.ERR);
    }

    default ResultData<?> error(Object data) {
        return new ResultData<>(ResultEnum.ERR.getCode(), ResultEnum.ERR.getMessage(), data);
    }

    default ResultData<?> responseSuccess(String message) {
        return new ResultData<>(ResultEnum.SUC.getCode(), message);
    }

    default ResultData<?> responseError(String message) {
        return new ResultData<>(ResultEnum.ERR.getCode(), message);
    }

    default ResultData<?> response(Integer code, String message) {
        return new ResultData<>(code, message);
    }

    default ResultData<?> response(ResultEnum result) {
        return ResultData.of(result);
    }

    default ResultData<?> response(ResultEnum result, Object data) {
        return new ResultData<>(result.getCode(), result.getMessage(), data);
    }

}
